package org.lzh.service;

import org.lzh.dao.TestPaperAndProblemDao;
import org.lzh.pojo.Problem;
import org.lzh.pojo.TestPaper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class TestPaperAndProblemService {
    //注入dao
    @Autowired
    protected TestPaperAndProblemDao testPaperAndProblemDao;

    //绑定问题
    public String bindProblem(String testPaperId, String ids){

        /** 给试卷添加需要绑定的题目 */
        for(String problemId : ids.split(",")){
            testPaperAndProblemDao.bindProblem(testPaperId,problemId);
        }
        return "题目绑定成功";

    }


    //解除绑定
    public String delete(String testPaperId, String ids){
        /** 给试卷添加需要绑定的题目 */
        for(String problemId : ids.split(",")){
            testPaperAndProblemDao.delete(testPaperId,problemId);
        }
        return "题目解绑成功";
    };

    //通过试卷id查询这个试卷下的所有题目
    public List<Problem> findAllProblem(String testPaperId){
        return testPaperAndProblemDao.findAllProblem(testPaperId);
    };

    //通过试卷id查询这个试卷下的所有题目 (分页)
    public List<Problem> findAllProblemPage(String testPaperId,int currPage, int pageSize){
        //查询全部数据
        List<Problem> students = testPaperAndProblemDao.findAllProblem(testPaperId);
        //总数据的长度
        int length=students.size();
        //从第几条数据开始
        int firstIndex = (currPage - 1) * pageSize;
        //到第几条数据结束
        int lastIndex = currPage * pageSize<length?currPage * pageSize:length;
        return students.subList(firstIndex, lastIndex); //直接在list中截取

    };

    //通过试卷id查询不属于这个试卷下的所有题目
    public List<Problem> findAllNotProblem(String testPaperId){
        return testPaperAndProblemDao.findAllNotProblem(testPaperId);
    };

    //通过试卷id查询不属于这个试卷下的所有题目 （分页）
    public List<Problem> findAllNotProblemPage(String testPaperId,int currPage, int pageSize){

        //查询全部数据
        List<Problem> students = testPaperAndProblemDao.findAllNotProblem(testPaperId);
        //总数据的长度
        int length=students.size();
        //从第几条数据开始
        int firstIndex = (currPage - 1) * pageSize;
        //到第几条数据结束
        int lastIndex = currPage * pageSize<length?currPage * pageSize:length;
        return students.subList(firstIndex, lastIndex); //直接在list中截取

    };
}
